home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / amiga / bmake15.lzh / log.c < prev    next >
C/C++ Source or Header  |  1991-09-09  |  909b  |  60 lines

  1. /*    log.c
  2.  *    (c) Copyright 1991 by Ben Eng, All Rights Reserved
  3.  *
  4.  */
  5.  
  6. #include "make.h"
  7.  
  8. #define LOGFILE "make.log"
  9.  
  10. static int
  11. open_logfile( void )
  12. {
  13.     if( !Global.logfile ) {
  14.         Global.logfile = fopen( LOGFILE, "a" );
  15.         if( !Global.logfile )
  16.             return( 1 );
  17.     }
  18.     return( 0 );
  19. }
  20.  
  21. void
  22. close_logfile( void )
  23. {
  24.     if( Global.logfile )
  25.         fclose( Global.logfile );
  26. }
  27.  
  28. void
  29. logfile( char *string )
  30. {
  31.     FILE *out;
  32.  
  33.     if( Param.log && !Global.logfile )
  34.         open_logfile();
  35.  
  36.     out = ( Param.log ) ? Global.logfile : stdout;
  37.     if( Param.log || Param.verbosity ) {
  38.         fputs( string, out );
  39.         fputc( '\n', out );
  40.         fflush( out );
  41.     }
  42. }
  43.  
  44. void
  45. logprintf( const char *fmt, ... )
  46. {
  47.     va_list argptr;
  48.     FILE *out;
  49.  
  50.     va_start( argptr, fmt );
  51.     if( Param.log && !Global.logfile )
  52.         open_logfile();
  53.  
  54.     out = ( Param.log ) ? Global.logfile : stdout;
  55.     if( Param.log || Param.verbosity ) {
  56.         vfprintf( out, fmt, argptr );
  57.     }
  58.     va_end( argptr );
  59. }
  60.